1. Field of Invention
The present invention relates to a method for executing a software updating process and to a computer for implementing the method. More particularly, the invention relates to a method and computer for updating the firmware of a printer or other peripheral device connected to a communication network.
2. Description of Related Art
In order to update the firmware in a printer or other peripheral device connected to a communication network to provide a new version or correct problems in the existing firmware, a computer that is connected to the same communication network sends the firmware update data to the printer or other peripheral device, which receives the update data and executes an update process.
Furthermore, in order to keep the manufacturing cost of certain devices such as printers, for example, low the printers are manufactured with standardized firmware circuit boards and the standardized firmware is overwritten with custom firmware or fonts for other languages as may be required prior to shipping. This is typically done by connecting multiple (ranging from several ten to several hundred) printers with the standardized firmware to a common communication network and simultaneously transmitting the firmware update data from the host computer to the printers to update the firmware.
More specifically, the printer or other peripheral device has a storage means such as flash ROM that stores the firmware. The host computer sends an updated version of an image file of the firmware that is stored in the flash ROM device in the Motorola (R) S3 format, for example, over the communication network to the printer or other peripheral device.
The Motorola (R) S3 format can be converted to a binary data record. More specifically, as shown in FIG. 6, the firmware update data is segmented into object data blocks each being a maximum of 250 bytes long. A 7-byte header including a 2-byte type field, a 1-byte data length field, and a 4-byte address field, and a 1-byte checksum are then added to each object data block to output a binary data unit train.
As demand for improved printer functionality has grown, printer firmware has also grown more complex and the size of the firmware update data has therefore also grown. The number of data units transmitted to update the firmware once has therefore also increased.
This increase in the size of the update data to be transmitted has become a problem in terms of the transmission time when sending the update data to a large number of printers or other peripheral devices connected to the communication network. More specifically, if the printers or other peripheral devices are connected by Ethernet™ and update data of a large size is simultaneously sent to the printers or other peripheral devices, the network load increases dramatically, packet collisions occur on the network, and data is lost.
When a collision in data transmission occurs in TCP (transmission control protocol) communications, transmission is automatically retried so that the packets are resent. As the number of retries increases, the update data transmission time also increases by the time required for the retries.
UDP (User Datagram Protocol) communication affords higher communication efficiency than TCP communication because packet collisions do not automatically activate this retry process. On the other hand, packet collisions require manually executing the retry process, thus increasing the workload and transmission time.
Addressing this problem, Japanese Unexamined Patent Appl. Pub. JP-A-H09-214804 teaches a method of reducing data transmission collisions on the network when sending and receiving video between multiple nodes connected to the network by having each node assert a next video transmission request after detecting that transmission of a particular video unit has finished, and cycling through the nodes asserting the video transmission requests in a prescribed order.
However, applying the method taught in Japanese Unexamined Patent Appl. Pub. JP-A-H09-214804 is not necessarily effective when sending firmware update data from a computer connected to the communication network to the printers or other peripheral devices connected to the same communication network. The method taught in Japanese Unexamined Patent Appl. Pub. JP-A-H09-214804 effectively reduces collisions when sending video bidirectionally between multiple nodes, but is not effective when sending a large number of packets in one direction from a computer to multiple peripheral devices.
A method of reducing collisions between data transmission and reducing the time required to complete the update process when sending firmware update data from a computer that is connected to a communication network to printers or other peripheral devices that are also connected to the communication network is therefore needed.